package com.example.fw;

import java.util.ArrayList;
import java.util.List;
import org.netbeans.jemmy.operators.JButtonOperator;
import org.netbeans.jemmy.operators.JDialogOperator;
import org.netbeans.jemmy.operators.JTextFieldOperator;
import org.netbeans.jemmy.operators.JTreeOperator;
import addressbook.AddressBookFrame;

public class FolderHelper extends HelpersBase {

	private int index;

	public FolderHelper(ApplicationManager applicationManager) {
		super (applicationManager);
	}

	public Folders getFolders () {
		List<String> list = new ArrayList<String>();
		JTreeOperator tree = new JTreeOperator(mainFrame);
		Object[] children = tree.getChildren(tree.getRoot());
		for (Object child : children) {
			list.add("" + child);
		} 
		return new Folders(list);
	}

	public String createFolder(String folderName) {
		manager.getMenuHelper().pushCreateFolder();
		JDialogOperator dialog = new JDialogOperator(mainFrame);
		new JTextFieldOperator(dialog).setText(folderName);
		new JButtonOperator(dialog, "OK").push();
		return waitMessageDialog("Warning", 3000);
	}

	public String deleteFolder(String folderName) {
		selectFolder(folderName);
		manager.getMenuHelper().pushDeleteFolder();
		JDialogOperator dialog = new JDialogOperator(mainFrame);
		new JButtonOperator(dialog, "Yes").push();
		return waitMessageDialog("AddressBook: Confirm", 3000);
		
	}
	
	public void selectFolder(String folderName) {
		JTreeOperator tree = new JTreeOperator(mainFrame);
		Object[] children = tree.getChildren(tree.getRoot());
		index = 0;
		for (Object child : children) {
			System.out.print(child);
			System.out.print(folderName);
			if (((AddressBookFrame.FolderTreeNode) child).toString().equals(folderName))  {
				tree.selectRow(index);
			return;
			} 
			index = index + 1;
			}
	} 
}
